package app.common.utils.wdt.sdk.api.wms.stockin;

import app.common.utils.wdt.sdk.Pager;
import app.common.utils.wdt.sdk.WdtErpException;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.CreateOtherStockinRequest;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.CreateOtherStockinResponse;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.CreateTransferStockinRequest;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.CreateTransferStockinResponse;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.OtherStockinRequest;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.OtherStockinResponse;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.ProcessStockinRequest;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.ProcessStockinResponse;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.RefundStockinRequest;
import app.common.utils.wdt.sdk.api.wms.stockin.dto.RefundStockinResponse;
import app.common.utils.wdt.sdk.impl.Api;

import java.util.List;

public interface StockinAPI {
    @Api(value = "wms.stockin.Refund.queryWithDetail", paged = true)
    RefundStockinResponse searchRefund(RefundStockinRequest request, Pager pager);

    @Api(value = "wms.stockin.Other.createOtherOrder")
    CreateOtherStockinResponse createOtherOrder(CreateOtherStockinRequest request) throws WdtErpException;
    
    @Api(value = "wms.stockin.Other.queryWithDetail", paged = true)
    OtherStockinResponse queryWithDetail(OtherStockinRequest request, Pager pager);

    @Api(value = "wms.stockin.Process.queryWithDetail", paged = true)
    ProcessStockinResponse searchProcess(ProcessStockinRequest request, Pager pager);
    
    @Api(value = "wms.stockin.Transfer.createOrder")
    CreateTransferStockinResponse createTransferOrder(CreateTransferStockinRequest.orderInfoDto orderInfo, List<CreateTransferStockinRequest.detailDto> detailList,boolean isCheck);
    
}
